package com.ruoyi.course.mapper;

import java.util.List;

import com.ruoyi.course.domain.CourseWare;
import com.ruoyi.course.domain.CourseWareComment;
import org.apache.ibatis.annotations.Param;
import org.springframework.security.core.parameters.P;

/**
 * 培训课件Mapper接口
 *
 * @author zzx
 * @date 2023-03-29
 */
public interface CourseWareMapper {
    /**
     * 查询培训课件
     *
     * @param id 培训课件主键
     * @return 培训课件
     */
    public CourseWare selectCourseWareById(Long id);

    /**
     * 查询培训课件列表
     *
     * @param courseWare 培训课件
     * @return 培训课件集合
     */
    public List<CourseWare> selectCourseWareList(CourseWare courseWare);

    /**
     * 新增培训课件
     *
     * @param courseWare 培训课件
     * @return 结果
     */
    public int insertCourseWare(CourseWare courseWare);

    /**
     * 修改培训课件
     *
     * @param courseWare 培训课件
     * @return 结果
     */
    public int updateCourseWare(CourseWare courseWare);

    /**
     * 删除培训课件
     *
     * @param id 培训课件主键
     * @return 结果
     */
    public int deleteCourseWareById(Long id);

    /**
     * 批量删除培训课件
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteCourseWareByIds(Long[] ids);

    /**
     * 通过章节编号查询课件
     */
    List<CourseWare> selectListBySectionId(@Param("sectionId")Long sectionId);

    /**
     * 添加中间表
     */
    int insertWareQuestion(@Param("wareId") Long wareId,@Param("questionId") Long questionId);

    /**
     * 删除中间表
     */
    int deleteCourseWareQuestion(@Param("wareId") Long wareId,@Param("questionId") Long questionId);

    /**
     * 根据课件编号查询评论
     */
    List<CourseWareComment> selectCommentById(@Param("wareId") Long wareId);

    /**
     * 添加评论
     */
    int insertCourseWareComment(CourseWareComment comment);

    /**
     * 删除评论
     */
    int deleteCourseWareComment(@Param("id")Long id);

    int selectCourseWareCountByTrainId(@Param("trainId") Long trainId);

    int updateWatchCountAdd(@Param("id")Long id);

}
